package com.piaohailin.util;


import java.util.Random;

/**
 * @author piaohailin@163.com
 * @date 2020-09-15
 */
public class Tools {

    /**
     *生成随机数字和字母
     * Bucket 命名规范：1)只能包括小写字母，数字和短横线（-）；2)必须以小写字母或者数字开头；3)长度必须在 3-63 字节之间。
     * @param length 长度
     * @return  随机字符串
     */
    public static String getStringRandom(int length) {
        String val = "";
        Random random = new Random();
        //参数length，表示生成几位随机数
        for(int i = 0; i < length; i++) {
            String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
            //输出字母还是数字
            if( "char".equalsIgnoreCase(charOrNum) ) {
                //输出是大写字母还是小写字母
                int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
                val += (char)(random.nextInt(26) + temp);
            } else if( "num".equalsIgnoreCase(charOrNum) ) {
                val += String.valueOf(random.nextInt(10));
            }
        }
        return val;
    }

    /**
     * 通过文件名判断并获取OSS服务文件上传时文件的contentType
     * @param fileName 文件名
     * @return 文件的contentType
     */
    public static  String getFileType(String fileName) {
        //文件的后缀名
        String fileExtension = fileName.substring(fileName.lastIndexOf("."));
        if(".bmp".equalsIgnoreCase(fileExtension)) {
            return ".bmp";
        }
        if(".gif".equalsIgnoreCase(fileExtension)) {
            return ".gif";
        }
        if(".jpeg".equalsIgnoreCase(fileExtension)) {
            return ".jpeg";
        }
        if(".jpg".equalsIgnoreCase(fileExtension)) {
            return ".jpg";
        }
        if(".png".equalsIgnoreCase(fileExtension) ) {
            return ".png";
        }
        //默认返回类型
        return ".jpeg";
    }

}
